

/*** 
Datavese replication material for

The asymmetric long-term electoral consequences of unpopular reforms: Why retrenchment really is a losing game for left parties

Journal of European Public Policy

Keywords: crisis of social democracy, electoral punishment, unpopular reform, welfare state reform

Alexander Horn (John F. Kennedy Memorial Fellow at CES/Harvard; Head, Emmy Noether Group Varieties of Egalitarianism, Konstanz)

05/18/2020
***/



use "jepp_replication_horn_dataverse.dta", clear

***preliminaries***
xtset id cab_count
set level 90, permanently
set more off
set scheme lean2

***variable labels and sources, variables in table 3***
	label var  s_uegen_d  "Unemployment insurance generosity change" 
	*Net change unemployment insurance generosity (Scruggs et al. 2014)
	label var gov_vote_d23 "Longterm vote share change" 
	*see paper, long-term vote change (t2 AND t3 compared to t0) 
	label var gov_left  "Left cabinet share" 
	*Cabinet share of left parties (ministers) (Armingeon et al. 2014)
	label var gov_right  "Right cabinet share" 
	*Cabinet share of right parties (ministers) (Armingeon et al. 2014)
	label var realgdpgr "Real GDP growth" 
	*Real GDP growth at the start/first year of t2 (A) (Armingeon et al. 2014)
	label var n_parties "Number of parties" 
	*Number of parties in cabinet between t0 and t1 (Armingeon et al. 2014)
	label var s_totgen_d "Generosity change across programs" 
	*Net change in overall welfare state generosity (Scruggs et al. 2014)
	label var gov_left_right  "Right-Left" 
	*gov_right minus gov_left (see above)

	
***Main results, table 4 
	xtpcse gov_vote_d23   c.s_uegen_d realgdpgr  n_parties      s_totgen_d    i.id, pa c(ar1)  // 
	eststo M1
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_left   n_parties  s_totgen_d    i.id, pa c(ar1)  //
	eststo M2
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_right  n_parties s_totgen_d     i.id, pa c(ar1)  //
	eststo M3
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_left##c.realgdpgr n_parties s_totgen_d i.id, pa c(ar1)  //
	eststo M4
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_right##c.realgdpgr n_parties s_totgen_d  i.id, pa c(ar1)  //
	eststo M5

	esttab M1 M2 M3 M4 M5 using AHf_table4.rtf, r2(%9.6f) drop (*.id) ///
    label nocons star(* 0.1 ** 0.05 *** 0.01) nogaps se ///
	mlabel ("M1" "M2" "M3" "M4" "M5") 

***Main results, predicted values in Figure 1, 2, 3, 4	

	*Figure 2   *
				xtpcse gov_vote_d23   c.s_uegen_d##c.gov_left   n_parties  s_totgen_d    i.id, pa c(ar1) 
				
				margins, at(s_uegen_d=(-3 (0.1) 3) gov_left=(100)) vsquish	
				marginsplot, level(90) x(s_uegen_d) recast(line) xlabel(-3 (1) 3) title("Panel A: Left cabinet", size(large)) /// 
				recastci(rline) xtitle("Generosity change", size(large)) ytitle("") ///
				ylab(0 (5) -20, nogrid labsize(large))  yline(0, lpattern(shortdash)) xlab(,labsize(large)) ///
				addplot(histogram s_uegen_d if gov_left_right<0 & s_uegen_d >-3.1 & s_uegen_d < 3.1, yaxis(2) yscale(alt axis(2))leg(off) ) 
				graph copy pnl_a, replace
		
				margins, at(s_uegen_d=(-3 (0.1) 3) gov_left=(0)) vsquish	
				marginsplot, level(90) x(s_uegen_d) recast(line) xlabel(-3 (1) 3) title("Panel B: Non-left cabinet", size(large)) /// 
				recastci(rline) xtitle("Generosity change", size(large)) ytitle("") ///
				ylab(0 (5) -20, nogrid labsize(large))  yline(0, lpattern(shortdash)) xlab(,labsize(large))  ///
				addplot(histogram s_uegen_d if gov_left_right>0 & s_uegen_d >-3.1 & s_uegen_d < 3.1, yaxis(2) yscale(alt axis(2))leg(off) ) 
				graph copy pnl_b, replace
		
				graph combine pnl_a pnl_b, ycommon	
	*Figure 3
				xtpcse gov_vote_d23   c.s_uegen_d##c.gov_right  n_parties s_totgen_d     i.id, pa c(ar1)  
				
				margins, at(s_uegen_d=(-3 (0.1) 3) gov_right=(100)) vsquish	
				marginsplot, level(90) x(s_uegen_d) recast(line) xlabel(-3 (1) 3) title("Panel A: Right cabinet", size(large)) ///
				recastci(rline) xtitle("Generosity change", size(large)) ytitle("") ///
				ylab(0 (5) -20, nogrid labsize(large))  yline(0, lpattern(shortdash)) xlab(,labsize(large)) ///
				addplot(histogram s_uegen_d if gov_left_right<0 & s_uegen_d >-3.1 & s_uegen_d < 3.1, yaxis(2) yscale(alt axis(2))leg(off) ) 
				graph copy pnl_c, replace
		
				margins, at(s_uegen_d=(-3 (0.1) 3) gov_right=(0)) vsquish	
				marginsplot, level(90) x(s_uegen_d) recast(line) xlabel(-3 (1) 3) title("Panel B: Non-right cabinet party", size(large)) ///
				recastci(rline) xtitle("Generosity change", size(large)) ytitle("") ///
				ylab(0 (5) -20, nogrid labsize(large))  yline(0, lpattern(shortdash)) xlab(,labsize(large)) ///
				addplot(histogram s_uegen_d if gov_left_right>0 & s_uegen_d >-3.1 & s_uegen_d < 3.1, yaxis(2) yscale(alt axis(2))leg(off) )
				graph copy pnl_d, replace
		
				graph combine pnl_c pnl_d, ycommon 
	*Figure 4			
				xtpcse gov_vote_d23   c.s_uegen_d##c.gov_left##c.realgdpgr n_parties s_totgen_d  i.id, pa c(ar1) 
				
				margins, at(s_uegen_d=(-2 (0.1) 2) gov_left=(100) realgdpgr=(-2)) vsquish	
				marginsplot, level(90) x(s_uegen_d) recast(line) xlabel(-2 (1) 2) title("Panel A: Crisis/-2% growth, left cabinet", size(large)) ///
				recastci(rline) xtitle("Generosity change", size(large)) ytitle("") ///
				ylab(0 (5) -20, nogrid labsize(large))  yline(0, lpattern(shortdash)) xlab(,labsize(large)) ///
				addplot(histogram s_uegen_d if gov_left_right<0 & s_uegen_d<3.1 & s_uegen_d>-3.1, yaxis(2) yscale(alt axis(2))leg(off) ) 
				graph copy pnl_e, replace
		
				margins, at(s_uegen_d=(-2 (0.1) 2) gov_left=(100) realgdpgr=(4)) vsquish	
				marginsplot, level(90) x(s_uegen_d) recast(line) xlabel(-2 (1) 2) title("Panel B: Boom/4% growth, left cabinet", size(large)) ///
				recastci(rline) xtitle("Generosity change", size(large)) ytitle("") ///
				ylab(0 (5) -20, nogrid labsize(large))  yline(0, lpattern(shortdash)) xlab(,labsize(large)) ///
				addplot(histogram s_uegen_d if gov_left_right<0 & s_uegen_d<3.1 & s_uegen_d>-3.1, yaxis(2) yscale(alt axis(2))leg(off) ) 
				graph copy pnl_f, replace
		
				graph combine pnl_e pnl_f, ycommon
	***Figure 5
				xtpcse gov_vote_d23   c.s_uegen_d##c.gov_right##c.realgdpgr n_parties s_totgen_d  i.id, pa c(ar1)  
				
				margins, at(s_uegen_d=(-2 (0.1) 2) gov_right=(100) realgdpgr=(-2)) vsquish	
				marginsplot, level(90) x(s_uegen_d) recast(line) xlabel(-2 (1) 2) title("Panel A: Crisis/-2% growth, right cabinet", size(large)) ///
				recastci(rline) xtitle("Generosity change", size(large)) ytitle("") /// 
				ylab(0 (5) -20, nogrid labsize(large))  yline(0, lpattern(shortdash)) xlab(,labsize(large)) ///
				addplot(histogram s_uegen_d if gov_left_right>0 & s_uegen_d<3.1 & s_uegen_d>-3.1, yaxis(2) yscale(alt axis(2))leg(off) ) 
				graph copy pnl_g, replace
		
				margins, at(s_uegen_d=(-2 (0.1) 2) gov_right=(100) realgdpgr=(4)) vsquish	
				marginsplot, level(90) x(s_uegen_d) recast(line) xlabel(-2 (1) 2) title("Panel B: Boom/4% growth, right cabinet", size(large)) ///
				recastci(rline) xtitle("Generosity change", size(large)) ytitle("") ///
				ylab(0 (5) -20, nogrid labsize(large))  yline(0, lpattern(shortdash)) xlab(,labsize(large)) ///
				addplot(histogram s_uegen_d if gov_left_right>0 & s_uegen_d<3.1 & s_uegen_d>-3.1, yaxis(2) yscale(alt axis(2))leg(off) ) 
				graph copy pnl_h, replace
		
				graph combine pnl_g pnl_h, ycommon
	
***Online appendix part 1: Controlling for continuous participation in government of parties after time t1 and/or t2	
	
	label var overlap_a "Overlap with subsequent governments"
	***extent to which government at t2 and t3 is identical with government at t1 (min. 0, max 100)
	***the overlap for t1-t2 and for t2-t3 is averaged
	
	xtpcse gov_vote_d23   c.s_uegen_d realgdpgr  n_parties      s_totgen_d overlap_a    i.id, pa c(ar1) 
	eststo B0
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_left   n_parties  s_totgen_d overlap_a    i.id, pa c(ar1)  
	eststo B1
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_right  n_parties s_totgen_d overlap_a     i.id, pa c(ar1) 
	eststo B2
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_left##c.realgdpgr n_parties s_totgen_d overlap_a i.id, pa c(ar1)  
	eststo B3
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_right##c.realgdpgr n_parties s_totgen_d overlap_a  i.id, pa c(ar1) 
	eststo B4
	
	esttab B0 B1 B2 B3 B4 using online_appendix1.rtf, r2(%9.6f) drop (*.id) label nocons star(* 0.1 ** 0.05 *** 0.01) se 
					
***Online appendix part 2: Controlling for governments’ vote share received at t1

	label var gov_vote_e "vote share received at t1"
	
	xtpcse gov_vote_d23   c.s_uegen_d realgdpgr  n_parties      s_totgen_d gov_vote_e    i.id, pa c(ar1)  
	eststo B0
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_left   n_parties  s_totgen_d gov_vote_e    i.id, pa c(ar1)  
	eststo B1
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_right  n_parties s_totgen_d gov_vote_e     i.id, pa c(ar1)  
	eststo B2
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_left##c.realgdpgr n_parties s_totgen_d gov_vote_e i.id, pa c(ar1)  
	eststo B3
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_right##c.realgdpgr n_parties s_totgen_d gov_vote_e  i.id, pa c(ar1)  
	eststo B4
			
   esttab B0 B1 B2 B3 B4 using online_appendix2.rtf.rtf, r2(%9.6f) drop (*.id) label nocons star(* 0.1 ** 0.05 *** 0.01) se	
				
***Online appendix part 3: Replacing unemployment insurance generosity change with total generosity change

	xtpcse gov_vote_d23   c.s_totgen_d realgdpgr  n_parties           i.id, pa c(ar1)  
	eststo B0
	xtpcse gov_vote_d23   c.s_totgen_d##c.gov_left   n_parties     i.id, pa c(ar1)  
	eststo B1
	xtpcse gov_vote_d23   c.s_totgen_d##c.gov_right  n_parties       i.id, pa c(ar1)  
	eststo B2
	xtpcse gov_vote_d23   c.s_totgen_d##c.gov_left##c.realgdpgr n_parties  i.id, pa c(ar1)  
	eststo B3
	xtpcse gov_vote_d23   c.s_totgen_d##c.gov_right##c.realgdpgr n_parties   i.id, pa c(ar1)  
	eststo B4

	esttab B0 B1 B2 B3 B4 using online_appendix3.rtf, r2(%9.6f) drop (*.id) label nocons star(* 0.1 ** 0.05 *** 0.01) se

***Online appendix part 4a: Controlling for the party family of the main opposition party at the time of t1
	
	label var o_parfam "Party family main opposition"

	xtpcse gov_vote_d23   c.s_uegen_d o_parfam realgdpgr  n_parties      s_totgen_d    i.id, pa c(ar1)  
	eststo B0
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_left  o_parfam n_parties  s_totgen_d    i.id, pa c(ar1) 
	eststo B1
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_right  o_parfam n_parties s_totgen_d     i.id, pa c(ar1)  
	eststo B2
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_left##c.realgdpgr o_parfam n_parties s_totgen_d i.id, pa c(ar1)  
	eststo B3
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_right##c.realgdpgr o_parfam n_parties s_totgen_d  i.id, pa c(ar1)  
	eststo B4
	
	esttab B0 B1 B2 B3 B4 using online_appendix4a.rtf, r2(%9.6f) drop (*.id) label nocons star(* 0.1 ** 0.05 *** 0.01) se
	
***Online appendix part 4b: Controlling for the emphasis the main opposition puts on welfare state issues at t1

	label var o_econ_l "Welfare emphasis of main opposition"
	
	xtpcse gov_vote_d23   c.s_uegen_d o_econ_l realgdpgr  n_parties      s_totgen_d    i.id, pa c(ar1)  
	eststo B0
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_left  o_econ_l n_parties  s_totgen_d    i.id, pa c(ar1)  
	eststo B1
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_right  o_econ_l n_parties s_totgen_d     i.id, pa c(ar1)  
	eststo B2
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_left##c.realgdpgr o_econ_l n_parties s_totgen_d i.id, pa c(ar1)  
	eststo B3
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_right##c.realgdpgr o_econ_l n_parties s_totgen_d  i.id, pa c(ar1)  
	eststo B4
			
	esttab B0 B1 B2 B3 B4 using online_appendix4b.rtf, r2(%9.6f) drop (*.id) label nocons star(* 0.1 ** 0.05 *** 0.01) se
	
***Online appendix part 5: long-term effects of unemployment generosity on GDP growth 	

	xtpcse L.a_realgdpgr_a   c.s_uegen_d                                            i.id, pa c(ar1) 
	eststo B0
	xtpcse L.a_realgdpgr_a   c.s_uegen_d realgdpgr  n_parties                   i.id, pa c(ar1) 
	eststo B1
	xtpcse L.a_realgdpgr_a   c.s_uegen_d realgdpgr  n_parties      s_totgen_d   i.id, pa c(ar1) 
	eststo B2
	xtpcse L2.a_realgdpgr_a   c.s_uegen_d                                            i.id, pa c(ar1)  
	eststo B3
	xtpcse L2.a_realgdpgr_a   c.s_uegen_d realgdpgr  n_parties                   i.id, pa c(ar1) 
	eststo B4
	xtpcse L2.a_realgdpgr_a   c.s_uegen_d realgdpgr  n_parties      s_totgen_d   i.id, pa c(ar1) 
	eststo B5
	
	esttab B0 B1 B2 B3 B4 B5 using AH_table29.rtf, r2(%9.6f) drop (*.id) label nocons star(* 0.1 ** 0.05 *** 0.01) se	

***Online appendix part 6a: Controlling for other generosity changes excluding unemployment insurance generosity	
	
	label var s_skp_gen_d "Other generosity changes without unemployment"
	
	xtpcse gov_vote_d23   s_uegen_d realgdpgr  n_parties  s_skp_gen_d         i.id, pa c(ar1)  // 
	eststo B0
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_left   n_parties  s_skp_gen_d    i.id, pa c(ar1)  //
	eststo B1
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_right  n_parties  s_skp_gen_d   i.id, pa c(ar1)  //
	eststo B2
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_left##c.realgdpgr n_parties   s_skp_gen_d  i.id, pa c(ar1)  //
	eststo B3
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_right##c.realgdpgr n_parties   s_skp_gen_d   i.id, pa c(ar1)  //
	eststo B4
			
	esttab B0 B1 B2 B3 B4 using online_appendix6a.rtf, r2(%9.6f) drop (*.id) label nocons star(* 0.1 ** 0.05 *** 0.01) se

***Online appendix part 7: Table 4 replicated with cabinet duration (number of years) as control

	label var cab_period "Cabinet duration"
	
	xtpcse gov_vote_d23   c.s_uegen_d realgdpgr  n_parties      s_totgen_d  cab_period   i.id, pa c(ar1) 
	eststo B0
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_left   n_parties  s_totgen_d cab_period   i.id, pa c(ar1) 
	eststo B1
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_right  n_parties s_totgen_d   cab_period   i.id, pa c(ar1)  
	eststo B2
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_left##c.realgdpgr n_parties s_totgen_d cab_period i.id, pa c(ar1) 
	eststo B3
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_right##c.realgdpgr n_parties s_totgen_d  cab_period i.id, pa c(ar1)  
	eststo B4

	esttab B0 B1 B2 B3 B4 using online_appendix7.rtf, r2(%9.6f) drop (*.id) label nocons star(* 0.1 ** 0.05 *** 0.01) se

***Online appendix part 8: Table 4 replicated with change in daycare spending as control
	
	label var a_daycare_pmp_d  "Change in daycare spending/GDP"

	foreach x of varlist a_daycare_pmp_d{
	  replace `x' = 0 if(`x' == .)
	}
	xtpcse gov_vote_d23   c.s_uegen_d realgdpgr a_daycare_pmp_d  n_parties   s_totgen_d    i.id, pa c(ar1) 
	eststo B0
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_left a_daycare_pmp_d   n_parties  s_totgen_d    i.id, pa c(ar1) 
	eststo B1
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_right a_daycare_pmp_d  n_parties s_totgen_d     i.id, pa c(ar1) 
	eststo B2
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_left##c.realgdpgr a_daycare_pmp_d n_parties s_totgen_d i.id, pa c(ar1) 
	eststo B3
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_right##c.realgdpgr a_daycare_pmp_d n_parties s_totgen_d  i.id, pa c(ar1)
	eststo B4
		
	esttab B0 B1 B2 B3 B4 using online_appendix8.rtf, r2(%9.6f) drop (*.id) label nocons star(* 0.1 ** 0.05 *** 0.01) se

***Online appendix part 9: Table 4 replicated with change in spending for training as control

	label var a_trainig_pmp_d  "Change in training spending/GDP"

	foreach x of varlist a_trainig_pmp_d{
	  replace `x' = 0 if(`x' == .)
	}		
	xtpcse gov_vote_d23   c.s_uegen_d realgdpgr  a_trainig_pmp_d n_parties      s_totgen_d    i.id, pa c(ar1)  
	eststo B0
    xtpcse gov_vote_d23   c.s_uegen_d##c.gov_left a_trainig_pmp_d   n_parties  s_totgen_d    i.id, pa c(ar1)  
	eststo B1
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_right a_trainig_pmp_d  n_parties s_totgen_d     i.id, pa c(ar1)  
	eststo B2
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_left##c.realgdpgr a_trainig_pmp_d n_parties s_totgen_d i.id, pa c(ar1)  
	eststo B3
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_right##c.realgdpgr a_trainig_pmp_d n_parties s_totgen_d  i.id, pa c(ar1)  
	eststo B4		
	
	esttab B0 B1 B2 B3 B4 using online_appendix9.rtf, r2(%9.6f) drop (*.id) label nocons star(* 0.1 ** 0.05 *** 0.01) se

***Online appendix part 10: Table 4, Model 4 and 5, but with social investment policy change rather than growth
	
	  foreach x of varlist a_trainig_pmp_d a_daycare_pmp_d{
	  replace `x' = 0 if(`x' == .)
	}
	***daycare
		xtpcse gov_vote_d23   c.s_uegen_d##c.gov_left##c.a_daycare_pmp_d n_parties s_totgen_d i.id, pa c(ar1)  
		eststo B1
		//=M4 table 4
		xtpcse gov_vote_d23   c.s_uegen_d##c.gov_right##c.a_daycare_pmp_d n_parties s_totgen_d  i.id, pa c(ar1)  
		//=M5 table 4
		eststo B2
    ***trainig
		xtpcse gov_vote_d23   c.s_uegen_d##c.gov_left##c.a_trainig_pmp_d n_parties s_totgen_d i.id, pa c(ar1)  
		eststo B3
		//=M4 table 4
		xtpcse gov_vote_d23   c.s_uegen_d##c.gov_right##c.a_trainig_pmp_d n_parties s_totgen_d  i.id, pa c(ar1)  
		//=M5 table 4
		eststo B4
		
		esttab B1 B2 B3 B4 using online_appendix10.rtf, r2(%9.6f) drop (*.id) label nocons star(* 0.1 ** 0.05 *** 0.01) se
	
***Online appendix part 11: Table 4, but with vote share change at t2 as dependent variable	

	xtpcse gov_vote_d2   c.s_uegen_d realgdpgr  n_parties      s_totgen_d    i.id if gov_vote_d23 !=., pa c(ar1)  
	eststo B0
	xtpcse gov_vote_d2   c.s_uegen_d##c.gov_left   n_parties  s_totgen_d    i.id if gov_vote_d23 !=., pa c(ar1) 
	eststo B1
	xtpcse gov_vote_d2   c.s_uegen_d##c.gov_right  n_parties s_totgen_d     i.id if gov_vote_d23 !=., pa c(ar1)  
	eststo B2
	xtpcse gov_vote_d2   c.s_uegen_d##c.gov_left##c.realgdpgr n_parties s_totgen_d i.id if gov_vote_d23 !=., pa c(ar1)  
	eststo B3
	xtpcse gov_vote_d2   c.s_uegen_d##c.gov_right##c.realgdpgr n_parties s_totgen_d  i.id if gov_vote_d23 !=., pa c(ar1)  
	eststo B4

	esttab B0 B1 B2 B3 B4 using online_appendix11.rtf, r2(%9.6f) drop (*.id) label nocons star(* 0.1 ** 0.05 *** 0.01) se

***Online appendix part 12: Table 4, but with vote share change at t3 as dependent variable	

	xtpcse gov_vote_d3   c.s_uegen_d realgdpgr  n_parties      s_totgen_d    i.id if gov_vote_d23 !=., pa c(ar1)  
	eststo B0
	xtpcse gov_vote_d3   c.s_uegen_d##c.gov_left   n_parties  s_totgen_d    i.id if gov_vote_d23 !=., pa c(ar1)  
	eststo B1
	xtpcse gov_vote_d3   c.s_uegen_d##c.gov_right  n_parties s_totgen_d     i.id if gov_vote_d23 !=., pa c(ar1)  
	eststo B2
	xtpcse gov_vote_d3   c.s_uegen_d##c.gov_left##c.realgdpgr n_parties s_totgen_d i.id if gov_vote_d23 !=., pa c(ar1)  
	eststo B3
	xtpcse gov_vote_d3   c.s_uegen_d##c.gov_right##c.realgdpgr n_parties s_totgen_d  i.id if gov_vote_d23 !=., pa c(ar1)  
	eststo B4
	
	esttab B0 B1 B2 B3 B4 using online_appendix12.rtf, r2(%9.6f) drop (*.id) label nocons star(* 0.1 ** 0.05 *** 0.01) se

***Online appendix part 13: Table 4 with Retrenchment period (after 1990) dummy variable as control  

	label var retr  "Retrenchment period(post-1990) = 1"

	xtpcse gov_vote_d23   c.s_uegen_d realgdpgr  n_parties      s_totgen_d  retr   i.id, pa c(ar1)  
	eststo B0
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_left   n_parties  s_totgen_d retr   i.id , pa c(ar1)  
	eststo B1
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_right  n_parties s_totgen_d  retr   i.id , pa c(ar1)
	eststo B2
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_left##c.realgdpgr n_parties s_totgen_d retr i.id , pa c(ar1) 
	eststo B3
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_right##c.realgdpgr n_parties s_totgen_d retr i.id , pa c(ar1)  
	eststo B4

	esttab B0 B1 B2 B3 B4 using online_appendix13.rtf, r2(%9.6f) drop (*.id) label nocons star(* 0.1 ** 0.05 *** 0.01) se

***Online appendix part 14: Table 4 without total generosity change (s_totgen_d)
	xtpcse gov_vote_d23   c.s_uegen_d realgdpgr  n_parties         i.id, pa c(ar1)  // 
	eststo B0
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_left   n_parties    i.id, pa c(ar1)  //
	eststo B1
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_right  n_parties     i.id, pa c(ar1)  //
	eststo B2
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_left##c.realgdpgr n_parties i.id, pa c(ar1)  //
	eststo B3
	xtpcse gov_vote_d23   c.s_uegen_d##c.gov_right##c.realgdpgr n_parties  i.id, pa c(ar1)  //
	eststo B4

	esttab B0 B1 B2 B3 B4 using online_appendix13.rtf, r2(%9.6f) drop (*.id) label nocons star(* 0.1 ** 0.05 *** 0.01) se
	
***contact details: https://www.exc.uni-konstanz.de/ungleichheit/forschung/projekte/emmy-noether-program-varieties-of-egalitarianism/***



